package com.xbongbong.paas.pojo;

import com.xbongbong.paas.field.FieldAttrEntity;
import com.xbongbong.paas.field.ItemPoJo;
import com.xbongbong.paas.field.MultiUnitItemPoJo;
import com.xbongbong.paas.field.NumericalLimitsPoJo;
import com.xbongbong.paas.field.UnitItemPoJo;
import com.xbongbong.paas.field.VisibleRulePoJo;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * @author haibin.zhang
 * @version v1.0
 * @date 2019/11/11 19:28
 * @since v1.0
 */
@Getter
@Setter
public class ProductFieldPojo {
    /**
     * 仅允许填写整数 1：是 0：否
     */
    private Integer integerOnly;
    /**
     * 是否限制数值范围 1：限制；0：不限制
     */
    private Integer numericalLimitsFlag;
    /**
     * 数值限制范围
     */
    private NumericalLimitsPoJo numericalLimits;
    /**
     * 精度
     */
    private Integer accuracy;
    /**
     * 是否允许可见 1:允许 0：不允许
     */
    private Integer visible;
    /**
     *  是否启用可见高级设置 1:启用 0：不启用
     */
    private Integer visibleScopeEnable;
    /**
     *  可见高级设置规则，格式{"type":1,"relative":[2],"role":[],"dep":[],"user":[]}
     */
    private VisibleRulePoJo visibleScopeRule;

    /**
     * saas字段关闭
     */
    private Integer isOpen;

    /**
     * 数字字段为金额类型，1：是；0：不是
     * 金额的可能要特殊处理
     */
    private Integer amountFlag;

    /**
     * 产品单单位
     */
    private List<ItemPoJo> singleItems;

    /**
     * 产品多单位
     */
    private List<MultiUnitItemPoJo> multiItems;

    /**
     * 产品多单位item列表
     */
    private List<UnitItemPoJo> multiItemDataPoJoList;


    public void buildData(FieldAttrEntity entity) {
        setIntegerOnly(entity.getIntegerOnly());
        setNumericalLimitsFlag(entity.getNumericalLimitsFlag());
        setNumericalLimits(entity.getNumericalLimits());
        setAccuracy(entity.getAccuracy());
        setVisible(entity.getVisible());
        setVisibleScopeEnable(entity.getVisibleScopeEnable());
        setVisibleScopeRule(entity.getVisibleScopeRule());
        setIsOpen(entity.getIsOpen());
        setAmountFlag(entity.getAmountFlag());
    }
}
